#!/usr/bin/env python

# -*- coding: utf-8 -*-

# Author: Milan Nikolic <gen2brain@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

import os
import sys

try:
    import dbus
    import dbus._version
    from dbus.mainloop.glib import DBusGMainLoop
    assert dbus.version >= (0, 80, 0)
except ImportError, AssertionError:
    sys.stderr.write("This program needs dbus-python 0.80.0 or higher\nExiting\n")
    sys.exit(1)

if os.path.isdir(os.path.join(".","src")) and os.path.isfile(
        os.path.join(".","setup.py")):
    sys.path.append(os.path.realpath("src"))

try:
    from volti.defs import *
except ImportError, err:
    print str(err)
    sys.stderr.write("Can't import application modules\nExiting\n")
    sys.exit(1)

if HAS_GTK3:
    from volti.gtk3 import main
elif HAS_GTK2:
    from volti.gtk2 import main
else:
    sys.stderr.write("This program needs pygtk 2.16 or gi.repository\nExiting\n")


if __name__ == "__main__":
    try:
        bus = dbus.SessionBus(mainloop = DBusGMainLoop())
    except dbus.exceptions.DBusException:
        sys.stderr.write("Couldn't connect to dbus.\nExiting\n")
        sys.exit(1)

    if bus.request_name("com.google.code.Volti") != dbus.bus.REQUEST_NAME_REPLY_PRIMARY_OWNER:
        sys.stderr.write("Only one instance is allowed\nExiting\n")
        sys.exit(1)

    volti = main.VolumeTray()
    volti.main()
